package com.tedu.api.thread;

/**
 * 创建线程---第三种方案：匿名内部类【推荐：创建1次】
 * Lambda---JDK1.8推出新版本：简化匿名内部类写法
 * Lambda表达式也叫函数式遍历！功能：简化匿名内部类
 *                              简化集合遍历功能
 *                              简化功能方法
 *                              简化IO流功能
 * Lambda表达式语法:()->{},属于功能性接口！
 * （） 代表
 *  -> 代表
 *  {} 代表
 *  需求：创建一个接口 Insert 插排 提供：电
 *          子实现类 Computer 电脑
 *          子类实现一个接口--完成对象创建【创建1次】
 *          匿名内部类方式实现对象创建
 *          Lambda表达式结构完成对象创建
 */
public class LambdaAPI {
    public static void main(String[] args) {
        //创建插排接口---必须使用子实现类
      //Insert cp=new Computer();  //多态 造型
       //cp.Dian();
        //子实现类---创建1次对象---匿名内部类：支持接口以及抽象类创建

//     Insert cp=new Insert(){
//           public String Dian(long money,char ch) {
//               System.out.println("电脑通电了");
//               return "电脑通电了～";
//           }
//        };
//       cp.Dian(100,'2');


        //使用Lambda表达式---简化方法
      Insert cp=(money,ch)->{return "电脑通电了～";};
        cp.Dian(100,'2');
        /**
         * Lambda表达式---匿名内部类【接口创建】
         * （） 代表 方法当中参数，情况①：无参数，不可以删除
         *                        ②：有参数，有1个参数,括号可以删除
         *                        ③：有参数，有2个参数以上，不可以删除
         * ->代表 new对象的过程
         * {} 代表 方法中内容，情况
         *               ①：看方法返回值 void 空 传入输出语句，删除花括号
         *               ②：看方法返回值 Java数据类型  return Java数据类型；
         *                             【两种：八大基本数据类型|引用类型】
         *                              返回值：存在 return 不可以删除【推荐】
         *                           2.1返回值：不存在 return 可以删除【不推荐】
         *               ③：看方法返回值 返回值集合 不可以删除花括号
         */

    }
}
//创建一个插排
interface Insert{
    public String Dian(long money,char ch);
}






//创建插排的实现类--电脑类
//class Computer implements Insert{
//    public void Dian() {
//        System.out.println("电脑通电开机了");
//    }
//}
